String Comparison

I am looking for help or ideas/code snippets pertaining to solving the following problem:

I want to find a specific set of words in a string of text contained in an specific attribute and store all the words that were found 1 or more times in an array.
SystemAdmin - Tue Feb 24 11:27:12 EST 2009

Re: String Comparison
dpechacek - Thu Feb 26 09:11:01 EST 2009

Check out regular expressions.

AAI Services, Textron
dpechacek@sc-aaicorp.com
David.Pechacek@gmail.com

Re: String Comparison
ePiallat - Fri Feb 27 09:19:54 EST 2009

/* To search words, it's better to use "keyword": this function matches only whole words, neither preceded nor followed by a non-alphanumeric character.
See my short example below (I put gibberish in my buffer for the sake of the demonstration) */
Buffer myText = create
myText = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean ullamcorper, diam scelerisque cursus aliquet, sapien elit varius sapien, egestas pulvinar mauris libero vel lectus. Sed tincidunt ipsum sit amet est. Nullam auctor eleifend leo. Curabitur rutrum, dolor vitae aliquam consequat, quam velit iaculis risus, euismod facilisis est felis at felis. Aliquam quis nisi. Etiam adipiscing orci vitae tellus. Morbi faucibus dui fermentum nisi vestibulum molestie. Vivamus id urna eu orci gravida volutpat. In convallis justo ac nunc. Donec bibendum. Ut a dui. Aliquam vitae risus vel tortor lobortis adipiscing. Quisque elit nisl, tempus id, tincidunt quis, facilisis molestie, sapien. Vivamus at nisi."

// Initialise the list of searched words
Skip myWords = createString
put(myWords , "sit",0)
put(myWords , "sapien",0)
put(myWords , "elit",0)
put(myWords , "platipus",0)
put(myWords , "diam", 0)
put(myWords , "requirement", 0)
// Search each word one at a time
string searchedWord
int number
int position
for number in myWords do {
searchedWord = (string key myWords)
position= 0
while (position<length myText) {
position= keyword (myText, searchedWord, position)
if (position == -1) break
position ++
number ++
}
put (myWords , searchedWord, number, true)
}
// Make treatment on result (here, simply display non null counts)
for number in myWords do if (number>0) print (string key myWords) ": " number "\n"

// Do not forget to delete Skip and Buffer after treatment
delete myWords
delete myText